2025-11-01
Получить навыки работы с контекстом безопасности и политиками SELinux.
SELinux (Security-Enhanced Linux) — реализация мандатного управления доступом в ядре Linux. Мандатное управление доступом (Mandatory Access Control, MAC) — разграничение прав доступа субъектов к объектам системы на базе меток конфиденциальности. Под объектами понимаются файлы, каталоги, устройства операционной системы. В качестве субъектов выступают процессы операционной системы. Метка в SELinux — контекст SELinux, содержащий информацию о принадлежности объекта системы пользователю SELinux, о его роли, типе и уровне безопасности. Основное назначение архитектуры MAC [5] — возможность принудительного назначения административно-установленной политики безопасности над всеми процессами и файлами системы. Политики безопасности SELinux работают поверх стандартного дискреционного управления контролем доступа (Discretionary Access Control, DAC) в Unix/Linux операционных системах.
Получаем полномочия администратора. Просматриваем подробную информацию о текущем состоянии SELinux, анализируя вывод команды.
Проверяем текущий режим работы SELinux. Убеждаемся, что по умолчанию используется режим принудительного исполнения. Изменяем режим работы SELinux на разрешающий и подтверждаем изменение текущего режима.
Рисунок 3: disabled
Редактируем конфигурационный файл, чтобы полностью отключить SELinux, и перезагружаем систему.
Рисунок 4: getenforce
После перезагрузки снова проверяем статус SELinux и убеждаемся, что он отключен. Пытаемся переключить режим работы SELinux без перезагрузки и анализируем реакцию системы.
Рисунок 5: enforcing
Возвращаем настройку SELinux в режим принудительного исполнения через конфигурационный файл и перезагружаем систему. Во время загрузки наблюдаем сообщения системы, связанные с восстановлением меток безопасности.
После завершения загрузки проверяем, что система работает в принудительном режиме с активным SELinux.
Получаем полномочия администратора. Просматриваем контекст безопасности системного файла. Копируем этот файл в домашний каталог и проверяем, как изменился его контекст безопасности. Перемещаем файл обратно в системный каталог, заменяя оригинал. Убеждаемся, что контекст безопасности файла остался неправильным. Восстанавливаем правильный контекст безопасности для файла с подробным выводом процесса. Проверяем, что контекст безопасности был успешно исправлен. Инициируем массовое восстановление контекстов безопасности во всей файловой системе и перезагружаем систему, наблюдая за процессом перемаркировки.
Получаем полномочия администратора. Устанавливаем необходимое программное обеспечение: httpd и lynx.
Рисунок 10: web
Создаем новый каталог для файлов веб-сервера вне стандартного расположения. Создаем в этом каталоге тестовую веб-страницу.
Изменяем конфигурацию веб-сервера, указывая новый каталог в качестве корневого и настраивая правила доступа к нему. Запускаем веб-сервер и добавляем его в автозагрузку.
Пытаемся обратиться к веб-серверу через текстовый браузер и обнаруживаем, что отображается стандартная страница, а не наша.
Рисунок 15: semanage | restorecon
Добавляем правило в политику SELinux, назначая правильный тип контекста для нового каталога и его содержимого. Восстанавливаем контекст безопасности для нового каталога с рекурсивным применением.
Снова обращаемся к веб-серверу и убеждаемся, что теперь отображается наша пользовательская страница. При необходимости перезагружаем систему.
Получаем полномочия администратора. Просматриваем список всех переключателей SELinux, связанных со службой FTP.
Ищем подробное описание переключателей для анонимного доступа FTP, включая их текущее состояние и назначение. Временно изменяем значение одного из переключателей. Проверяем, что значение переключателя изменилось. Снова смотрим подробный список переключателей и обращаем внимание на разницу между временным и постоянным состоянием. Изменяем значение переключателя постоянно. Проверяем окончательное состояние переключателя, убеждаясь, что теперь и временное, и постоянное значения совпадают.
Мы получили навыки работы с контекстом безопасности и политиками SELinux.